
Ethan Collins
Pattern Recognition Specialist

RoxyBrowser menyediakan fungsi browser melalui panggilan API dan dapat diintegrasikan dengan kerangka kerja otomatisasi seperti Selenium, Puppeteer, dan Playwright. API-nya dirancang agar Anda dapat membuka profil browser nyata secara programatis dan menghubungkan alat otomatisasi Anda. API ini memiliki batas laju yang terdokumentasi sebesar 100 panggilan per menit per endpoint.
Sumber: https://faq.roxybrowser.org/en/guide/10-API
CapSolver menyediakan alur API create-and-poll yang mengembalikan token CAPTCHA yang dapat Anda sisipkan ke halaman. CapSolver mendukung berbagai jenis CAPTCHA:
ReCaptchaV2TaskProxyLess, mengembalikan gRecaptchaResponseReCaptchaV3TaskProxyLess, mengembalikan gRecaptchaResponse dengan skorAntiTurnstileTaskProxyLess, mengembalikan token Lihat dokumenPanduan ini menunjukkan alur yang praktis dan tidak terikat kerangka kerja: buka profil Roxy melalui API, sambungkan kerangka kerja otomatisasi Anda, selesaikan CAPTCHA dengan CapSolver, dan sisipkan token untuk melanjutkan.
RoxyBrowser adalah browser antidetect untuk multi-akun dengan fitur seperti otomatisasi API dan sinkronisasi multi-jendela.
Untuk otomatisasi, API adalah bagian yang paling relevan:
Mendukung integrasi dengan Selenium, Puppeteer, dan Playwright.
Permintaan harus mencakup header token.
Host API default adalah http://127.0.0.1:50000 (perubahan port memerlukan restart).
CapSolver menyelesaikan CAPTCHA melalui dua panggilan API:
createTask untuk mengirim parameter CAPTCHAgetTaskResult untuk memeriksa hingga token siapUntuk reCAPTCHA v2, CapSolver mengembalikan gRecaptchaResponse.
getTaskResult dibatasi hingga 120 permintaan per tugas dan harus dipanggil dalam 5 menit sejak pembuatan tugas.
Secara default, hostnya adalah http://127.0.0.1:50000. Jika Anda mengganti port, Anda harus memulai ulang RoxyBrowser.
Gunakan /browser/workspace untuk mengambil workspace, lalu /browser/list_v3 untuk mendaftar profil.
import requests
BASE = "http://127.0.0.1:50000"
HEADERS = {"token": "YOUR_ROXY_API_KEY"}
workspaces = requests.get(f"{BASE}/browser/workspace", headers=HEADERS).json()
workspace_id = workspaces["data"]["rows"][0]["id"]
profiles = requests.get(
f"{BASE}/browser/list_v3",
params={"workspaceId": workspace_id},
headers=HEADERS
).json()
dir_id = profiles["data"]["rows"][0]["dirId"]
Panggil /browser/open. Respons mencakup:
ws: Antarmuka WebSocket untuk alat otomatisasihttp: Antarmuka HTTP untuk alat otomatisasidriver: Jalur WebDriver untuk integrasi SeleniumMode headless tidak didukung.
open_resp = requests.post(
f"{BASE}/browser/open",
json={"workspaceId": workspace_id, "dirId": dir_id, "args": []},
headers=HEADERS
).json()
ws_endpoint = open_resp["data"]["ws"]
http_endpoint = open_resp["data"]["http"]
driver_path = open_resp["data"]["driver"]
Gunakan endpoint yang dikembalikan untuk menyambungkan kerangka kerja Anda:
driver dengan koneksi debugger.Langkah penyambungan yang tepat bergantung pada kerangka kerja Anda, tetapi nilai ws, http, dan driver secara eksplisit disediakan untuk alat otomatisasi.
import time
import requests
CAPSOLVER_API_KEY = "YOUR_CAPSOLVER_API_KEY"
CAPSOLVER_BASE = "https://api.capsolver.com"
def create_task(task):
payload = {"clientKey": CAPSOLVER_API_KEY, "task": task}
r = requests.post(f"{CAPSOLVER_BASE}/createTask", json=payload)
data = r.json()
if data.get("errorId", 0) != 0:
raise RuntimeError(data.get("errorDescription", "Kesalahan CapSolver"))
return data["taskId"]
def get_task_result(task_id, delay=2):
while True:
time.sleep(delay)
r = requests.post(
f"{CAPSOLVER_BASE}/getTaskResult",
json={"clientKey": CAPSOLVER_API_KEY, "taskId": task_id}
)
data = r.json()
if data.get("status") == "ready":
return data["solution"]
if data.get("status") == "failed":
raise RuntimeError(data.get("errorDescription", "Tugas gagal"))
def solve_recaptcha_v2(website_url, website_key):
task = {
"type": "ReCaptchaV2TaskProxyLess",
"websiteURL": website_url,
"websiteKey": website_key
}
task_id = create_task(task)
solution = get_task_result(task_id)
return solution.get("gRecaptchaResponse", "")
def solve_recaptcha_v3(website_url, website_key, page_action="verify"):
task = {
"type": "ReCaptchaV3TaskProxyLess",
"websiteURL": website_url,
"websiteKey": website_key,
"pageAction": page_action
}
task_id = create_task(task)
solution = get_task_result(task_id)
return solution.get("gRecaptchaResponse", "")
def solve_turnstile(website_url, website_key, action=None, cdata=None):
task = {
"type": "AntiTurnstileTaskProxyLess",
"websiteURL": website_url,
"websiteKey": website_key
}
# Tambahkan metadata opsional jika tersedia
if action or cdata:
task["metadata"] = {}
if action:
task["metadata"]["action"] = action
if cdata:
task["metadata"]["cdata"] = cdata
task_id = create_task(task)
solution = get_task_result(task_id)
return solution.get("token", "")
Untuk Referensi:
Buka profil Roxy melalui /browser/open dan sambungkan kerangka kerja otomatisasi Anda.
Navigasi ke halaman target dan ekstrak kunci situs.
Contoh:
const siteKey = document.querySelector(".g-recaptcha")?.getAttribute("data-sitekey");
Selesaikan dengan CapSolver menggunakan helper di atas.
Sisipkan token dan kirim formulir:
const token = "CAPSOLVER_TOKEN";
const el = document.getElementById("g-recaptcha-response");
el.style.display = "block";
el.value = token;
el.dispatchEvent(new Event("input", { bubbles: true }));
el.dispatchEvent(new Event("change", { bubbles: true }));
reCAPTCHA v3 bekerja berbeda - berjalan di latar belakang dan mengembalikan skor (0,0 hingga 1,0) alih-alih memerlukan interaksi pengguna.
Ekstrak kunci situs dan aksi dari halaman:
// Kunci situs biasanya ada di skrip atau tag meta
const siteKey = document.querySelector('[data-sitekey]')?.getAttribute('data-sitekey');
// Aksi ditemukan dalam panggilan grecaptcha.execute
// Cari sumber halaman untuk: grecaptcha.execute('KEY', {action: 'ACTION'})
const pageAction = "submit"; // atau "login", "register", dll.
Selesaikan dengan CapSolver:
token = solve_recaptcha_v3(
website_url="https://example.com/login",
website_key="6LcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAA",
page_action="login"
)
Sisipkan token (sama seperti v2):
const token = "CAPSOLVER_TOKEN";
document.getElementById("g-recaptcha-response").value = token;
// Jika ada callback, aktifkan
if (typeof ___grecaptcha_cfg !== 'undefined') {
const clients = ___grecaptcha_cfg.clients;
Object.keys(clients).forEach(key => {
if (clients[key].callback) {
clients[key].callback(token);
}
});
}
Cloudflare Turnstile adalah alternatif CAPTCHA modern yang lebih cepat untuk diselesaikan (1-20 detik).
Ekstrak kunci situs Turnstile:
const siteKey = document.querySelector('.cf-turnstile')?.getAttribute('data-sitekey');
// Opsional: ekstrak aksi dan cdata jika tersedia
const action = document.querySelector('.cf-turnstile')?.getAttribute('data-action');
const cdata = document.querySelector('.cf-turnstile')?.getAttribute('data-cdata');
Selesaikan dengan CapSolver:
token = solve_turnstile(
website_url="https://example.com",
website_key="0x4AAAAAAAxxxxxxxxxxxxxxx",
action=action, # opsional
cdata=cdata # opsional
)
Sisipkan token Turnstile:
const token = "CAPSOLVER_TURNSTILE_TOKEN";
// Cari input respons Turnstile
const input = document.querySelector('input[name="cf-turnstile-response"]');
if (input) {
input.value = token;
input.dispatchEvent(new Event('input', { bubbles: true }));
input.dispatchEvent(new Event('change', { bubbles: true }));
}
// Alternatif: beberapa situs menggunakan nama input berbeda
const altInput = document.querySelector('input[name="turnstile-response"]');
if (altInput) {
altInput.value = token;
}
getTaskResult CapSolver dibatasi hingga 120 polling dalam 5 menit.Siap memulai? Daftar untuk CapSolver dan gunakan kode bonus ROXYBROWSER untuk bonus tambahan 6% pada recharge pertama Anda!

Apakah RoxyBrowser mendukung Selenium, Puppeteer, dan Playwright?
Ya. API dirancang untuk integrasi dengan kerangka kerja ini.
Di mana saya mendapatkan token API dan host?
Dari API -> Konfigurasi API di RoxyBrowser. Host defaultnya adalah http://127.0.0.1:50000.
Apa yang dikembalikan oleh /browser/open?
Mengembalikan bidang ws, http, dan driver yang digunakan oleh alat otomatisasi.
Apakah mode headless didukung?
Tidak, mode headless tidak didukung.
Jenis CAPTCHA apa yang didukung CapSolver?
Bagaimana CapSolver mengembalikan token reCAPTCHA v2?
Buat tugas dengan ReCaptchaV2TaskProxyLess dan polling getTaskResult untuk gRecaptchaResponse.
Bagaimana reCAPTCHA v3 berbeda dari v2?
reCAPTCHA v3 berjalan di latar belakang tanpa interaksi pengguna dan mengembalikan skor (0,0-1,0). Membutuhkan parameter pageAction, yang dapat ditemukan dengan mencari grecaptcha.execute di sumber halaman.
Bagaimana saya menyelesaikan Cloudflare Turnstile?
Gunakan tipe tugas AntiTurnstileTaskProxyLess dengan websiteURL dan websiteKey. Secara opsional sertakan metadata.action dan metadata.cdata jika tersedia di widget. Turnstile diselesaikan dalam 1-20 detik.
Bacaan Lanjutan:
Bagaimana saya menemukan kunci situs Turnstile?
Cari atribut data-sitekey pada elemen .cf-turnstile. Kunci situs Turnstile dimulai dengan 0x4.
Apakah saya memerlukan proxy untuk CapSolver?
Tidak, tipe tugas *ProxyLess menggunakan infrastruktur proxy CapSolver sendiri. Gunakan versi tanpa ProxyLess jika Anda ingin menggunakan proxy Anda sendiri.
RoxyBrowser memberi Anda lingkungan browser berbasis profil dengan endpoint otomatisasi, dan CapSolver menyediakan token CAPTCHA secara programatis. Dengan membuka profil Roxy, menyambungkan kerangka kerja Anda, dan menyisipkan token CapSolver, Anda dapat membangun alur otomatisasi yang memahami CAPTCHA.
Pelajari arsitektur pengambilan data web Rust yang dapat diskalakan dengan reqwest, scraper, pengambilan data asinkron, pengambilan data browser tanpa tampilan, rotasi proxy, dan penanganan CAPTCHA yang sesuai aturan.

Mengotomasi penyelesaian CAPTCHA dengan Nanobot dan CapSolver. Gunakan Playwright untuk menyelesaikan reCAPTCHA dan Cloudflare secara otomatis.
